<?php
// +----------------------------------------------------------------------
// | B5Yii2CMF V3.0 [快捷通用基础管理开发平台]
// +----------------------------------------------------------------------
// | Author: 冰舞 <357145480@qq.com>
// +----------------------------------------------------------------------
declare (strict_types = 1);

namespace common\helpers;

class ValidateHelper
{
    /**
     * 验证手机号或座机号
     * @param string $mobile_phone
     * @param bool $tel 是否验证座机
     * @return bool
     */
    public static function isMobilePhone(string $mobile_phone, $tel = false): bool
    {
        $chars = "/^1[2-9]{1}[0-9]{1}[0-9]{8}$/";
        $chars1 = "/^([0-9]{3,4}-)?[0-9]{7,8}$/";
        if (!preg_match($chars, $mobile_phone)) {
            if ($tel) {
                if (!preg_match($chars1, $mobile_phone)) {
                    return false;
                }
            } else {
                return false;
            }
        }
        return true;
    }

    /**
     * 是否为邮箱
     * @param string $email
     * @return bool
     */
    public static function isEmail(string $email): bool
    {
        return filter_var($email, FILTER_VALIDATE_EMAIL) != false;
    }

    /**
     * 是否中文
     * @param string $str
     * @return bool
     */
    public static function isChinese(string $str): bool
    {
        if (preg_match('/^[\x7f-\xff]+$/', $str)) {
            return true;
        }
        return false;
    }

    /**
     * 验证只能是字母
     * @param string $str
     * @return bool
     */
    public static function isAlpha(string $str): bool
    {
        if (preg_match('/^[A-Za-z]+$/', $str)) {
            return true;
        }
        return false;
    }

    /**
     * 验证只能是字母、数字、下划线和破折号
     * @param string $str
     * @return bool
     */
    public static function isAlphaDash(string $str): bool
    {
        if (preg_match('/^[A-Za-z0-9_-]+$/', $str)) {
            return true;
        }
        return false;
    }

    /**
     * 验证只能是字母、数字
     * @param string $str
     * @return bool
     */
    public static function isAlphaNum(string $str): bool
    {
        if (preg_match('/^[A-Za-z0-9]+$/', $str)) {
            return true;
        }
        return false;
    }
}
